The present disclosure relates generally to the field of software configuration management, and more particularly to validating, detecting, and dynamically handling software configurations and updates. Software is typically configured to operate in conjunction with other software, and, in particular, with certain versions of the software. Software versioning is the process of assigning unique version names or numbers to unique states of software. Software usually has mandatory configuration settings that are required for its proper operation. In addition, system consistency might be jeopardized if the software is run without proper configuration. Hence, software must be maintained after its deployment to ensure that its configuration is working well.
Software configuration management system (hereinafter “SCMS”) is software that tracks and controls changes in software (hereinafter “configuration events”) in a structured, orderly, and productive manner. A SCMS typically identifies, controls, and audits configuration events. Typically, when a SCMS discovers new software faults and/or requirements it determines what was changed and generates a notification. This is particular true in large scale information technology infrastructure where system consistency might be jeopardized if a software upgrade results in incompatible software. However, current SCMS offerings leave the validation of configuration event to the products themselves. In addition, current SCMS offerings do not verify that the configuration event is compatible with related software, nor do they confirm whether a reconfiguration would be required to maintain compatibility.